package com.siashan.toolkit.crypt.asymmetric;

/**
 * 非对称算法类型<br>
 * @see <a href="https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator"></a>
 *
 * @author siashan
 * @since 1.0.7
 */
public enum AsymmetricAlgorithm {
    /** RSA算法   Java默认实现方式：RSA/None/PKCS1Padding*/
    RSA("RSA"),
    /** RSA算法，此算法用了默认补位方式为RSA/ECB/PKCS1Padding */
    RSA_ECB_PKCS1("RSA/ECB/PKCS1Padding"),
    /** RSA算法，此算法用了默认补位方式为RSA/ECB/NoPadding */
    RSA_ECB("RSA/ECB/NoPadding"),
    /** RSA算法，此算法用了RSA/None/NoPadding   Bouncy Castle 的默认实现 */
    RSA_None("RSA/None/NoPadding"),
    ////////////////// 扩充 //////////////////////////////
    /**RSAES-OAEP*/
    RSAES_OAEP("RSA/ECB/OAEPWithSHA-1AndMGF1Padding"),
    RSA_OAEP("RSA/ECB/OAEPPadding");
    private final String value;

    /**
     * 构造
     * @param value 算法字符表示，区分大小写
     */
    AsymmetricAlgorithm(String value) {
        this.value = value;
    }

    /**
     * 获取算法字符串表示，区分大小写
     * @return 算法字符串表示
     */
    public String getValue() {
        return this.value;
    }
}
